/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package WebServices;

import Interfaces.Factory;
import Interfaces.ICtrlDocumentos;
import java.util.logging.Logger;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.xml.ws.Endpoint;

/**
 *
 * @author Sebas
 */
@WebService
@SOAPBinding(style = Style.RPC, parameterStyle = ParameterStyle.WRAPPED)
public class CtrlDocumentosWS implements ICtrlDocumentos{

    private Endpoint endpoint = null;
    private Logger log = Logger.getLogger(CtrlDocumentosWS.class.getName());

    @WebMethod(exclude = true)
    public void publicar() {
        Propiedades propiedades = Propiedades.getInstance();
        String nomCtrl = "CtrlDocumentos";
        String camino = "http://" + propiedades.getServer() + ":" + propiedades.getPuerto() + "/" + nomCtrl;
        log.info("publicando el endpoint " + nomCtrl);
        endpoint = Endpoint.publish(camino, this);
        log.info("Endpoint " + nomCtrl + " publicado en " + camino);
    }

    @WebMethod(exclude = true)
    public Endpoint getEndpoint() {
        return endpoint;
    }

    @Override
    @WebMethod
    public void saveOnServer(@WebParam(name = "archivo") byte[] archivo, 
                @WebParam(name = "nomArchivo")String nomArchivo,
                @WebParam(name = "esGrupo") boolean esGrupo,
                @WebParam(name = "duenoMuro") String duenoMuro) {
        ICtrlDocumentos ctrl = Factory.getInstance().getDocumentos();
        ctrl.saveOnServer(archivo, nomArchivo, esGrupo, duenoMuro);
    }

    @Override
    public byte[] traerDoc(@WebParam(name = "nomArchivo")String nomArchivo, 
                        @WebParam(name = "mailUsr")String mailUsr, 
                        @WebParam(name = "esGrupo")boolean esGrupo) {
        ICtrlDocumentos ctrl = Factory.getInstance().getDocumentos();
        return ctrl.traerDoc(nomArchivo, mailUsr, esGrupo);
    }

}
